System and method for dynamic content processing with extendable provisioning

ABSTRACT

Data can be stored in a wide variety of formats, and it is recognized that not all terminals have the resources for storing the appropriate Application Program for processing and/or viewing the data as defined in a particular format. Systems and methods are described for dynamically processing a generic content expressed in a structured definition language. The systems and methods use an associated content handler having a set of instructions suitable for processing the content, such as XML content. The method comprises receiving a content envelope including the content and a reference to the associated content handler. The associated content handler is requested using the reference, the reference including a reference location for the content handler. Once obtained, the content is processed using the set of instructions of the content handler. The instructions can be expressed in script and/or code.

This application is a continuation of U.S. patent application Ser. No.10/787,950, filed Feb. 27, 2004.

BACKGROUND

The present application relates to data content processing. There is acontinually increasing number of terminals in use today, such as mobiletelephones, PDAs with wireless communication capabilities, personalcomputers, self service kiosks and two-way pagers. Software applicationswhich run on these terminals increase their utility. For example, amobile phone may include an application which retrieves the weather fora range of cities, or a PDA may include an application that allows auser to shop for groceries. These software applications take advantageof the connectivity to a network in order to provide timely and usefulservices to users. However, due to the restricted resources of someterminals, and the complexity of delivering large amounts of data forprocessing to the terminals, developing and maintaining data processingcapabilities of software applications remains a difficult andtime-consuming task.

Extended Markup Languages, such as XML, have become a standard forpresenting, formatting and exchanging generic data. Being implemented byvirtually all platforms and environments, XML allows seamlessintegration of heterogeneous systems using common data interfaces. XMLprocessing is supported by core programming languages, XML-basedlanguages (e.g. XPATH, XQUERY) and script language extensions (e.g.ECMAScript for XML-E4X).

Data can be stored in a wide variety of formats, and it is recognizedthat not all terminals have the resources for storing the appropriateApplication Program for processing and/or viewing the data as defined ina particular format. In some instances, the terminal will not recognizethe format that the data is represented in, and therefore the user ofthe terminal may be required to select or obtain the appropriateApplication Program. A further disadvantage of current data formats isthat an older version of an Application Program may not recognize anupdated data format, thereby resulting in the inability of the olderapplication version to process or display the updated data.

Systems and methods of dynamic processing of data content are disclosedherein to obviate or mitigate the above presented disadvantages.

SUMMARY

Data can be stored in a wide variety of formats, and it is recognizedthat not all terminals have the resources for storing the appropriateApplication Program for processing and/or viewing the data as defined ina particular format. In some instances, the terminal will not recognizethe format that the data is represented in, and therefore the user ofthe terminal may be required to select or obtain the appropriateApplication Program. A further disadvantage of current data formats isthat an older version of an Application Program may not recognize anupdated data format, thereby resulting in the inability of the olderapplication version to process or display the updated data. Contrary tocurrent data format processing schemes there is provided systems andmethods for dynamically processing a generic content expressed in astructured definition language. The systems and methods use anassociated content handler having a set of instructions suitable forprocessing the content. One such method comprises receiving a contentenvelope including the content and a reference to the associated contenthandler. The associated content handler is requested using thereference, the reference including a reference location for the contenthandler. Once obtained, the content is processed using the set ofinstructions of the content handler. The instructions can be expressedin script and/or code.

A method for dynamically processing a generic content expressed in astructured definition language using an associated content handlerhaving a set of instructions suitable for processing the content isprovided, the method comprising the steps of: receiving a contentenvelope including the content and a reference to the associated contenthandler; requesting the associated content handler using the reference,the reference including a reference location for the content handler;obtaining the content handler; and processing the content using the setof instructions of the content handler.

Also disclosed is a method for enabling the dynamic processing of ageneric content expressed in a structured definition language using anassociated content handler, the content handler having a set ofinstructions suitable for processing the content, the method comprisingthe steps of: preparing a content envelope to include the content;inserting a reference to the associated content handler in the contentenvelope, the reference including a reference location for the contenthandler; and making available the content handler for being accessed bythe reference; wherein once obtained, the set of instructions is used toprocess the content.

A terminal for dynamically processing a generic content expressed in astructured definition language using an associated content handlerhaving a set of instructions suitable for processing the content isfurther disclosed, the terminal comprising: a processing framework forreceiving a content envelope including the content and a reference tothe associated content handler; a requesting module operating in theframework for requesting the associated content handler using thereference, the reference configured to include a reference location forthe content handler; a provisioning module operating in the frameworkfor obtaining the content handler; and a processing module forprocessing the content using the set of instructions of the contenthandler.

A computer program product for dynamically processing a generic contentexpressed in a structured definition language using an associatedcontent handler having a set of instructions suitable for processing thecontent is also provided, the computer program product comprising: acomputer readable medium; a requesting module stored on the computerreadable medium for operating in a runtime environment, the requestingmodule for requesting the associated content handler using thereference, the reference configured to include a reference location forthe content handler; a provisioning module stored on the computerreadable medium for operating in the runtime environment for obtainingthe content handler; and a processing module coupled to the provisioningmodule for processing the content using the set of instructions of thecontent handler.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features will become more apparent in the followingdetailed description in which reference is made to the appended exampledrawings, wherein:

FIG. 1 is a block diagram of a network system;

FIG. 2 is a block diagram of a generic terminal of FIG. 1;

FIG. 3 shows a processing framework of the device of FIG. 2;

FIG. 4 is a content envelope of FIG. 1;

FIG. 5 is an example operation of the system of FIG. 1; and

FIG. 6 is a workflow for processing of generic content of FIG. 5.

DESCRIPTION Network System

Referring to FIG. 1, a network system 10 comprises a plurality ofterminals 100 for interacting with one or more handler informationservers 110 accessed by a handler server 106, via a coupled Wide AreaNetwork (WAN) 104 such as but not limited to the Internet. These genericterminals 100 can be any suitable terminal such as but not limited towired devices such as personal computers 116, wireless devices 101,PDAs, self-service kiosks and the like. The server 106 provides accessto content handlers 107 through messages 105 including a reference name122 (ID) of the requested handler 107. Information for the handler 107can be obtained by the server 106 from an information server 110. Thesystem 10 provides the capability of the terminal 100 to handleprocessing of an application content 120, such as but not limited toexpressed in a structured definition language such as XML, that has theassociated handler 107. The handler 107 could either be generic(content-dependent) or specialized (content and terminal 100-dependent).The application content 120 could be retrieved locally (terminal 100storage) or from a remote server 106. Alternatively, the remote server106 could push the content 120 on demand to the terminal 100. It isrecognized that XML represents only one example of a structureddefinition language that can be used to define the content 120. Otherexample languages can include such as but not limited to HTML, XHTML,XSML, RDF, Machine Readable Cataloging (MARC), and Multipurpose InternetMail Extensions (MIME). It is further recognized that the system 10 canbe suitable to any range of XML-defined contents 120 to be used inconjunction with terminals 100 that may be limited in terms ofconnectivity, memory and/or storage.

The terminal 100 has a processing framework 206 (see FIG. 2) forprocessing a received XML envelope 118 (or other structured language)containing the embedded content 120, the content handler reference ID122, and a handler reference location 124. It is noted that the envelope118 contains this reference to the handler 107. The handler 107 can beresident locally or externally as dictated by circumstance. Further, thesystem 10 can also have a gateway server 112 for connecting the desktopterminals 116 via a Local Area Network (LAN) 114 to the server 106.Further, the system 10 can have a wireless network 102 for connectingthe wireless devices 101 to the WAN 104. It is recognized that otherterminals and computers (not shown) could be connected to the server 106via the WAN 104 and associated networks other than as shown in FIG. 1.The generic terminals 100, wireless devices 101 and personal computers116 are hereafter referred to as the terminal 100 for the sake ofsimplicity. Further, the networks 102, 104, 112 of the system 10 willhereafter be referred to as the network 104, for the sake of simplicity.It is recognized that there could be multiple servers 106, 110, and/orthat the functionality of the servers 106 and 110 could be combined, ifdesired.

Generic Terminal

Referring to FIG. 2, the terminals 100 can be any suitable dataprocessing platform such as but not limited to desktop or laptopcomputer systems, mobile telephones (or other wireless devices), PDAs,two-way pagers and/or dual-mode communication terminals. The terminals100 include a network connection interface 200, such as a wirelesstransceiver or a wired network interface card or a modem, coupled viaconnection 218 to a terminal infrastructure 204. The connectioninterface 200 is connectable during operation of the terminals 100 tothe network 104, such as to the wireless network 102 by, for example, RFlinks (see FIG. 1), which enables the terminals 100 to communicate witheach other and with external systems (such as the server 106—see FIG. 1)via the network 104 and to coordinate the requests/response messages 105between the terminals 100 and the servers 106, 110. The network 104, insome implementations, can support the transmission of the handlers 107in the requests/response messages 105 between terminals 100 and externalsystems, which are connected to the network 104. The network 104 mayalso support voice communication for telephone calls between theterminals 100 and terminals which are external to the network 104. Awireless data transmission protocol can be used by the wireless network102, such as but not limited to DataTAC, GPRS or CDMA.

Referring again to FIG. 2, the terminals 100 also have a user interface202, coupled to the terminal infrastructure 204 by connection 222, tofacilitate interaction with a user (not shown). The user interface 202can include one or more user input devices such as but not limited to aQWERTY keyboard, a keypad, a trackwheel, a stylus, a mouse, a microphoneand the user output device such as an LCD screen display and/or aspeaker. If the screen is touch sensitive, then the display can also beused as the user input device as controlled by the terminalinfrastructure 204. The user interface 202 is employed by the user ofthe terminal 100 to coordinate the requests/response message messages105 over the system 10 (see FIG. 1) as employed by the processingframework 206.

Referring again to FIG. 2, operation of the terminal 100 is enabled bythe terminal infrastructure 204. The terminal infrastructure 204includes the computer processor 208 and the associated memory module210. The computer processor 208 manipulates the operation of the networkinterface 200, the user interface 202 and the framework 206 of thecommunication terminal 100 by executing related instructions, which areprovided by an operating system; the computer processor 208 can includeone or more processing elements that may include one or more generalpurpose processors and/or special purpose processors (e.g., ASICs,FPGAs, DSPs, etc). Further, it is recognized that the terminalinfrastructure 204 can include a computer readable storage medium 212coupled to the processor 208 for providing instructions to the processorfor loading/updating client application programs 107. The computerreadable medium 212 can include hardware and/or software such as, by wayof example only, magnetic disks, magnetic tape, optically readablemedium such as CD/DVD ROMS, and memory cards. In each case, the computerreadable medium 212 may take the form of a small disk, floppy diskette,cassette, hard disk drive, solid state memory card, or RAM provided inthe memory module 210. It should be noted that the above listed examplecomputer readable mediums 212 can be used either alone or incombination.

Processing Framework

Referring to FIGS. 2 and 3, a client runtime environment is provided bythe processing framework 206. The framework 206 of the terminal 100 iscoupled to the infrastructure 204 by the connection 220 and is aninterface to the terminal 100 functionality of the processor 208 andassociated operating system of the infrastructure 204. The clientruntime environment of the terminals 100 is preferably capable ofgenerating, hosting and executing client application programs (notshown) on the terminal 100. Further, specific functions of the clientruntime environment can include a variety of functionality such as butnot limited to service framework 304 support for language, coordinatingmemory allocation, networking, management of data during I/O operations,coordinating graphics on an output device of the terminals 100 andproviding access to core object oriented classes and supportingfiles/libraries. Examples of the runtime environments implemented by theterminals 100 can include such as but not limited to Common LanguageRuntime (CLR) by Microsoft and Java Runtime Environment (JRE) by SunMicrosystems.

The processing framework 206 provides ability to dynamically manage theContent Handlers 107. Specific actions of the framework 206 can includehandler management functions such as but not limited to: determining thehandler 107 required for the Content 120; lookup of the handler 107 onthe terminal 100 or via the network 104; downloading the handler 107from the specified reference location 124 if needed; and removing orotherwise suspending/caching handlers 107 no longer required by theterminal 100.

The processing framework 206 manages the content handler 107provisioning, retrieving and removing from the runtime environment ofthe terminal 100. The framework 206 also supports the handler 107execution. The application program requests the Processing Framework 206to handle or otherwise process the generic Content 120 using theassociated handler 107. The framework 206 is capable of retrieving thehandler 107 based on its reference location 124 specified in the Contentenvelope 118 or schema. If the handler 107 is not available on theterminal 100, the framework 206 is capable of downloading the handler107 from the reference location 124 specified in the envelope 118. Theapplication program could also notify the framework 206 when the Content120 processing is completed and the associated handler 107 is no longerrequired for its operations. The framework 206 could then reclaim thespace in active memory 210 of the terminal infrastructure 204 occupiedby the no longer useful Content Handler 107 (such as in the case of anapplication program upgrade). In the environments with centralizedmanagement of the terminals 100 is being enforced (e.g. corporatespace), a central server (not shown) could initiate removal of obsoletehandler 107 on the terminals 100.

Referring again to FIG. 3, the Processing Framework 206 can providegeneric service framework 304 functionality as part of, or separatefrom, the application program 107 and can include, without limitation,an Application Manager 306, a Handler Validator 314, a ProvisioningManager 308, a Communication Service 316, a Script Interpreter 312, anda Persistence Manager. Other services (not shown) can include apresentation service, an access service and a utility service. It isrecognised that separate service functionality can be shared by aplurality of application programs and handlers 107.

Referring again to FIG. 3, the communication service 316 managesconnectivity between the terminals 100 and the servers 106, 110 via thenetwork 104, including the ability to fetch remotely stored contenthandlers 107 as required. The persistence manager 310 allows the contenthandlers 107 to be locally stored in the memory module 210. Theprovisioning manager 308 manages the provisioning of the contenthandlers 107 on the terminal 100. Content handler 107 provisioning caninclude storing, retrieving, downloading and removing handlers 107 onthe terminal 100, such as requesting and receiving remotely storedhandlers 107 from the server 106, 110 and locally stored handlers 107from the storage 210. Further, the provisioning manager 308 can beresponsible for providing APIs (application program interfaces) to theapplications for enabling dynamic requesting of the handlers 107 orremove same on request, as further described below. The ApplicationManager 306 can be used to interact with the user interface 202 (seeFIG. 2), manages application lifetime, etc. The Application Manager 306can also provide interfaces that the applications can use to requestservices, such as loading the Content Handler 107 for the Content 120.The Handler Validator 314 can be used for security reasons—to controlthe validity of the content 120 downloaded to the terminal and protectthe user from rogue scripts (such as but not limited to viruses). TheScript Interpreter 312 can be used to run the content handler 107script/code. API to provision for manipulation of content handlers 107can be available through the Script Interpreter 312. The ScriptInterpreter 312 broadly is designed to execute a set of instructions.Such instructions can be encoded in any specified programming and/orscripting language; further, instructions could be in a compiled orpartially compiled form (e.g., Java bytecode). It is recognized thatother configurations of the processing framework 206 with respectiveservices 306, 308, 310, 312, 314, 316 for implementing the application107 adaptation can be other than shown, as desired. Further, it isrecognized that the framework 206 can be part of the operating system ofthe terminal infrastructure 204.

Content Envelope

Referring to FIG. 4, the envelope 118 contains the content 120, thereference name 122 of the associated content handler 107, and thereference location 124 for obtaining the content handler 107 locally orremotely. The Content 120 could represent a variety of forms of datasuch as but not limited to browser screens (e.g. xHTML), applicationdata (e.g. game levels), wireless messages (email/SMS/MMS), orstand-alone applications. The Content 120 wrapped in the envelope 118contains either the direct or the indirect (e.g. such as through XMLschema) reference to one or more appropriate Content Handlers 107.Example data formats of the data are jPEG, GIF, HTML, WAV files, Flashmedia, etc; although other types of formatted data would be feasible.The Content Reference contains references to type and location of theContent Handler 107. Optionally, Content 120 could use an XML Schemadefinition to identify a URI and type for the associated Content Handler107.

In further terms, the Content Handler 107 is coupled to the contentenvelope 118 via the reference location 124 and the correspondingreference name 122. The handler 107 represents a set of instructions(i.e. code and/or script) to handle or otherwise process the Content120. The instruction set can be implemented in a platform-neutral script(such as but not limited to ECMAScript, E4X, etc.) or asenvironment-specific code components for implementation in the nativeruntime environment of the processing framework 206 (such as but notlimited to C, C+, etc.). The content handler 107 also can be consideredas an appropriate Application Program for processing and/or viewing thedata defined in a particular format, as represented by the content 120,for example, specified in a structured definition language such as XML.These content handlers 107 can be resident on the terminals 100 oraccessible via the network 104.

Example Content Handlers

The content handlers 107 can be accessed via different dynamic lookupmodes. The handler 107 could be either generic or terminal 100 specific.The Processing Framework 206 is capable of retrieving the contenthandler reference name 122 and location 124 and provisioning therequired handler 107 from the specified location 124. The requiredHandler 107 for the Content 120 and its location can be indicated indifferent ways: directly within the Content; or indirectly using adocument schema reference. Accordingly, these modes for obtaining thehandlers 107 can include such as but not limited to direct reference,and indirect reference, as further described below.

The data of the envelope 118 can contain pointers/tags (i.e. the handlerreference name 122 ID) to the applications/code/script used to manage orotherwise process the data. For example, a user receives video file onthe terminal 100 but does not have the required player (i.e. the contenthandler 107). Therefore, the video file (envelope 118) would contain XMLdata (content 120) with the references 122,124 to the required player.

In the case of the direct reference, the following example XML documentshows the location 124 and name 122 in bold. For example, the XMLdocument has a predefined child element handler that specifies type,version, and location of the Content Handler 107 associated with thisdocument.

XML Document <?xml version=“1.0”?><eventUpdatexmlns:xsl=“http://www.w3.org/2001/XMLSchema-instance”xsl:noNamespaceSchemaLocation=“example0.xml”>    <event>     <title>DogSledding Races</title>     <location>Banff, Alberta</location>    <date>2004-01-21</date>     <details>DEC12</details>    </event>   <handler>     <type>E4X</type>    <URI>http://www.dograces.com/handlers/NewEvent.es</URI>    <version>1.3</version>    </handler> </eventUpdate>

In the case of the indirect reference, the following example XMLdocument shows the Content Handler Location 124 defined in a XSD file inbold. For example, the XML document specifies the Content Handler usingdocument schema reference. This approach can eliminate the ContentHandler reference name 122 inside the XML document but requires an extrastep downloading the additional schema file.

XML Schema <xsd:schema  xmlns:xsd=’http://www.w3.org/2001/XMLSchema’   xmlns:handler=’http://www.dograces.com/schema/handlers/v1 0’> <xsd:element name=“eventUpdate” type=“EventNotification”/> <xsd:complexType name=“EventNotification”>   <xsd:sequence>   <xsd:element name=“event” type=“Event” minOccurs=“1” maxOccurs=“5”/>  </xsd:sequence>  </xsd:complexType>  <xsd:complexType name=“Event”>  <xsd:sequence>    <xsd:element name=“title” type=“xsd:string”/>   <xsd:element name=“location” type=“xsd:string”/>    <xsd:elementname=“date” type=“xsd:date”/>    <xsd:element name=“details”type=“xsd:string”/>   </xsd:sequence>  </xsd:complexType> </xsd:schema>XML Document <?xml version=“1.0”?><eventUpdatexmlns:xsl=“http://www.w3.org/2001/XMLSchema-instance”xsl:noNamespaceShemaLocation=“example1.xml”>   <event>    <title>DogSledding Races</title>    <location>Banff, Alberta</location>   <date>2004-01-21</date>    <details>DEC12</details>   </event></eventUpdate>

It is recognized that structured definition language documents andschema files can be used other than described above, if desired.

Processing of Generic Content

The system 10 describes capability to dynamically retrieve theassociated Content Handler 107 required to process the Content 120 (suchas XML) once it has been presented for processing on the terminal 100.The Content Handler reference associated with the content 120 isembedded in the message data envelope 118, or otherwise associated witha particular group of data of the contained message. This approach cansupport dynamic modularity, mutation and extensibility. It is furtherrecognized that a variety of structured definition languages can beused, such as XML, HTML and XGML, etc. Provisioning of the ContentHandler 107 on the terminal 100 can be handled dynamically, on a perneed basis as the data of the content 120 is processed by the framework206. In a wireless environment characterized by small storage space andlimited processor power, the ability to provision on demand and removeno longer required handlers can be beneficial.

For example, upon execution of the application program on the terminal100, the program requests the Processing Framework 206 to handle newContent 120. The program could have obtained this content 120 asfollows, such as but not limited to: downloaded from the server 106according to user request or application logic; pushed to the terminal100 by the application server 110 (e.g. channel update, eventnotification); or loaded from the local application store (whenretrieving loosely coupled content 120—e.g. user reached a new gamelevel).

Referring to FIGS. 4, 5 and 6, operation 500 of the system 10 beginswith the envelope 118 being received 502 by the terminal 100. Thecontent 120 with handler reference is passed to the processing framework206 of the terminal 100, including such as the application manager 306(see FIG. 3). The application manager 306 requests 504 the specificcontent handler 107 indicated in the content 120 from the provisioningmanager 308. The provisioning manager 308 checks 506 if the specifiedhandler 107 is resident on the terminal 100. If so, the specifiedhandler 107 is passed back to the application manager 306. Otherwise,the provisioning manager 308 requests and proceeds to download orotherwise obtain 508 the specified content handler 107 from the handlerserver 106 via the network 104 (see FIG. 1). It is recognized that thehandler server 106 can be a dedicated handler repository/database,and/or can have access to same. Once downloaded, the provisioningmanager 308 passes 510 the content handler 107 back to the applicationmanager 306. The application manager 306 then proceeds to process 512the content 120 using the handler interpreter 312 for running thehandler 107 set of instructions (i.e. script and/or code). Executing thehandler interpreter 312 provides for the processed data to be displayedand/or otherwise manipulated 514 by the user interface 202 and/or theterminal infrastructure 204 (see FIG. 3) of the terminal 100.

The above description relates to one or more exemplary systems andmethods. Many variations will be apparent to those knowledgeable in thefield, and such variations are within the scope of the application. Itis recognized that structured definition languages other than XML can beused, as well as a plurality of different terminals, such as PC's,PDA's, kiosks, mobile devices. The terminals 100 can be deployed onwired and/or wireless network topologies. For example, it is recognisedthat implementation of the content handlers can be performed by arequesting module operating in the framework for requesting theassociated content handler using the reference, a provisioning moduleoperating in the framework for obtaining the content handler; and aprocessing module for processing the content using the set ofinstructions of the content handler. These modules can be made availableon the terminal 100 as software, hardware, or a combination thereof.

As described above, the system 10 and method 500 are applicable to awide range of generic terminals 100, and corresponding applications(including a browser), dealing with processing of content 120, byexample. Operational efficiencies could be achieved when the method 500is applied to mobile terminals 101, due to apparent limitations of theseterminals 100 such as occasional connectivity, limited memory andstorage, limited screen real estate, and/or high latency. Use of thesystem 10 can provide the ability of the terminal 100 to handle genericcontent 120. For example, when discovering that a new type of XML datain the envelope 118 has been received from the server 106, theapplication provisioned on the terminal 100 can download the appropriatehandler 107 to process this data. For a browser, the ability to loadmiscellaneous XML processing plugins on demand (e.g. miscellaneous typesof XML, schema validation, execution) can be advantageous.

The system 10 can also provide for the decoupling of presentation/dataand logic by allowing development of content 120 processing functions(handlers 107) targeted for a specific client environment (e.g. wirelessdevice 101) to be downloaded on demand after the content 120 has beenloaded on the runtime environment of the device 101. The system 10 canalso provide for dynamic extension of existing application programs byallowing application developers to program hookup “stubs” (emptyhandlers 107) to plug-in future application extensions. When additionalfunctionality is developed external to the application, the hookup couldbe replaced with a “redirector” script that enables applicationextensions. The system 10 can also provide for dynamicversioning/content updates, wherein seamless application updates can behandled (e.g. new virus definitions for anti-virus apps). The system 10can also provide dynamic application provisioning and dynamicmodification of application blocks, such that for XML definedapplications this mechanism could allow dynamic application provisioningand dynamic modification of application blocks based on the user actionor new data/options available becoming available. The system 10 can alsoprovide for efficient storage management for limited terminals 100,wherein the ability to provision when needed and clear space by removingapplication data/blocks dynamically can provide significant advantagesin a limited environment. The system 10 can also provide dynamicexecution of server-initiated push operations. It is recognized that thenetwork environment of the data content manager provisioning can beapplied to both wired and wireless topologies.

1. A method for dynamically processing of generic content expressed inan extensible markup language (XML) on a wireless computing device, themethod comprising the steps of: preparing a content envelope to compriseXML content; inserting a reference to an associated content handler inthe context envelope, the content handler being specific to the contentand the wireless computing device and comprising a set of instructionsfor processing the XML content and the reference including a referencelocation for the content handler; and making available the contenthandler for being accessed by the reference; wherein once obtained,processing the content using the set of instructions of the contenthandler to process the XML content.
 2. The method according to claim 1,wherein the content handler is retrieved from a remote storage location.3. The method according to claim 1, wherein the content handler isretrieved from a local storage location.
 4. The method according toclaim 3, wherein the content handler is pushed to the local storagelocation from a remote server.
 5. The method according to claim 1further comprising the step of implementing a service framework forproviding service functionality to interact with the content handler. 6.The method according to claim 5, wherein the service framework is sharedbetween a plurality of the content handlers and their correspondingapplication programs.
 7. The method according to claim 6, wherein theservice framework comprises services selected from the group comprising;an application manager, a handler validator, a provisioning manager, acommunications manager, a script interpreter, and a persistence manager.8. The method according to claim 7 further comprising the step of theprovisioning manager providing application program interfaces forenabling dynamic processing using the content handlers.
 9. The methodaccording to claim 5, wherein the service framework provides at leastone of a content handler look-up, content handler downloading, contenthandler deleting, and content handler suspending service.
 10. A wirelessterminal for dynamically processing a generic content expressed in anextensible markup language (XML), the terminal comprising: a processingframework for receiving a content envelope including XML content and areference to an associated content handler, the content handler beingspecific to the content and the wireless computing device and comprisinga set of instructions for processing the XML content and; a requestingmodule operating in the framework for requesting the associated contenthandler using the reference, the reference configured to include areference location for the content handler; a provisioning moduleoperating in the framework for obtaining the content handler; and aprocessing module for processing the content using the set ofinstructions of the content handler.
 11. The terminal according to claim10, wherein the content handler is made available on a remote storagelocation.
 12. The terminal according to claim 10, wherein the contenthandler is made available on a local storage location.
 13. The methodaccording to claim 12, wherein the content handler is pushed to thelocal storage location from a remote server.
 14. The terminal accordingto claim 10 further configured to interact with a service framework forproviding service functionality to the available content handler. 15.The terminal according to claim 14, wherein the service framework isshared between a plurality of the content handlers and theircorresponding application programs.
 16. The terminal according to claim15, wherein the service framework comprises services selected from thegroup comprising; an application manager, a handler validator, aprovisioning manager, a communications manager, a script interpreter,and a persistence manager.
 17. The terminal according to claim 16wherein the provisioning manager provides application program interfacesfor enabling dynamic processing using the content handlers.
 18. Theterminal according to claim 10 wherein the content handler selected byeither a processing framework of the terminal or a network server. 19.The terminal according to claim 15, wherein the service frameworkprovides at least one of a content handler look-up, content handlerdownloading, content handler deleting, or content handler suspendingservice.
 20. A computer readably medium comprising instructions which,when executed on a computing device, cause the computing device toimplement the steps of: preparing a content envelope to comprise XMLcontent; inserting a reference to an associated content handler in thecontext envelope, the content handler being specific to the content andthe wireless computing device and comprising a set of instructions forprocessing the XML content and the reference including a referencelocation for the content handler; and making available the contenthandler for being accessed by the reference; wherein once obtained,processing the content using the set of instructions of the contenthandler to process the XML content.